Skip to content

feat: v3.6.0 — classic/bold redesigned as native 5-row fonts with distinct glyph shapes#23

Merged
aedneth merged 1 commit into
mainfrom
feat/v3.6.0-classic-bold-native-5row-shapes
Jun 12, 2026
Merged

feat: v3.6.0 — classic/bold redesigned as native 5-row fonts with distinct glyph shapes#23
aedneth merged 1 commit into
mainfrom
feat/v3.6.0-classic-bold-native-5row-shapes

Conversation

@aedneth

@aedneth aedneth commented Jun 12, 2026

Copy link
Copy Markdown
Owner

What & why

classic and bold were reduced in v3.5.0/v3.5.1 to the block font merely re-inked with shade characters (classic=, bold=). They had no distinct glyph shape — just block with a different fill — and bold's read nearly identical to block's . Cycling the three solid styles with d showed little observable change, and the original terminal-numeral letterforms had been deleted rather than adapted to the locked footprint.

This PR closes the recurring pattern from v3.3.1 → v3.5.1: the real defect was always geometry (the original classic/bold were 9-row, 5/6-wide → didn't fit the 5-row × 4-col footprint), and prior fixes either clamped or replaced the fonts instead of redesigning them natively.

The fix

classic and bold are now native 5-row fonts with genuinely distinct glyph shapes, both inked with solid :

  • classic — cornered/open rounded-terminal numerals (notched corners, open interiors → softer, stylized silhouette).
  • bold — heavy-slab numerals (filled corners + interior texture → visibly heavier weight).

Both keep the exact 5-row × 4-col block footprint (STYLE_METRICS unchanged), so:

  • cycling with d never shifts the layout,
  • both render their own glyphs at every window size — including a minimized, non-zen window with session metadata — with no fallback to block and no towering.

The three solid styles (block/classic/bold) are now distinguished by shape + stroke weight, not by shade fill (shades couldn't differentiate three solid styles at 5×4). Glyph tables use only /space so they cell-repeat scale cleanly exactly like block.

Verification (all PASS)

  • Distinctness sweep: every digit differs from block in ≥2 cells; classic differs from bold in ≥4 cells; all legible at scale 1.
  • Footprint parity: width + row count == block at scales 1/2/3.
  • No-fallback render at the reported 84×17 minimized window (non-zen, metadata visible): classic/bold render their own distinct glyphs, goal + metadata stay visible, render ≠ block.
  • Gates: build ✓ · typecheck ✓ · lint ✓ · 602 tests pass.
  • Tests rewritten to measure the fix (distinct-shape + footprint parity + no-fallback), not the deleted shade behavior.

MINOR release. Public default stays block. Cycle order unchanged (block → simple → outline → minimal → classic → bold).

🤖 Generated with Claude Code

…tinct glyph shapes

classic and bold were reduced in v3.5.0/v3.5.1 to the `block` font merely
re-inked with shade characters (classic=░, bold=▓) — they had no distinct
glyph shape, and bold's shade read nearly identical to block. Cycling the
three solid styles with `d` showed little observable change, and the original
terminal-numeral designs had been deleted rather than adapted.

This redesigns classic and bold as NATIVE 5-row fonts with genuinely distinct
glyph SHAPES, both inked with solid █:

  - classic: cornered/open "rounded-terminal" numerals (notched corners, open
    interiors → a softer, stylized silhouette).
  - bold: heavy-slab numerals (filled corners + interior texture → a visibly
    heavier weight).

Both keep the EXACT 5-row × 4-col block footprint (STYLE_METRICS unchanged), so
cycling never shifts the layout and both render their own glyphs at every window
size — including a minimized, non-zen window with session metadata — with no
fallback to block and no towering. The three solid styles (block/classic/bold)
are now distinguished by SHAPE + stroke weight, not by shade fill (the shade
approach was geometrically incapable of differentiating three solid styles at
the locked 5×4 footprint).

Glyph tables use only █/space so they cell-repeat scale cleanly exactly like
block. Every digit differs from block in ≥2 cells; classic differs from bold
in ≥4 cells; all legible at scale 1 in a minimized window. Removed the
shade-fill machinery (CLASSIC_FILL/BOLD_FILL/renderShaded).

Verification: build/typecheck/lint clean; 602 tests pass; footprint+shape
parity sweep and a no-fallback render at the reported 84×17 minimized window
both PASS. MINOR release; public default stays block; cycle order unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@aedneth aedneth merged commit db1cf41 into main Jun 12, 2026
6 checks passed
@aedneth aedneth deleted the feat/v3.6.0-classic-bold-native-5row-shapes branch June 12, 2026 13:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant